package com.sscl.basesample.activities.sample

import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.view.View
import com.sscl.baselibrary.activity.BaseDataBindingWithTitleAppCompatActivity
import com.sscl.baselibrary.exts.toAirplaneModeSetting
import com.sscl.baselibrary.exts.toDisplaySetting
import com.sscl.baselibrary.exts.toVoiceControlAirplaneModeSetting
import com.sscl.baselibrary.exts.toWifiSetting
import com.sscl.baselibrary.utils.ToastUtil
import com.sscl.basesample.databinding.ActivitySystemIntentBinding

class SystemIntentActivity : BaseDataBindingWithTitleAppCompatActivity<ActivitySystemIntentBinding>() {

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     *
     * 属性声明
     *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    /* * * * * * * * * * * * * * * * * * * 常量属性 * * * * * * * * * * * * * * * * * * */

    /**
     * 点击事件的处理
     */
    private val onClickListener = View.OnClickListener {
        when (it) {
            binding.wifiSettingBtn -> {
                toWifiSetting(true)
            }

            binding.airplaneModeSettingBtn -> {
                toAirplaneModeSetting(true)
            }

            binding.displaySettingBtn -> {
                toDisplaySetting(true)
            }

            binding.voiceControlAirplaneModeSettingBtn -> {
                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
                    ToastUtil.toastLong(this, "当前系统版本过低，无法使用此功能")
                    return@OnClickListener
                }
                toVoiceControlAirplaneModeSetting(true)
            }

            binding.systemSettingBtn -> {
                //跳转到系统设置界面
                val intent = Intent(Settings.ACTION_SETTINGS)
                startActivity(intent)
            }
        }
    }

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     *
     * 实现方法
     *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    /**
     * 标题栏的返回按钮被按下的时候回调此方法
     */
    override fun titleBackClicked(): Boolean {
        return false
    }

    /**
     * 在设置布局之前需要进行的操作
     */
    override fun doBeforeSetLayout() {

    }

    /**
     * 设置DataBinding
     * 可在此处设置binding的viewModel或观察者等操作
     */
    override fun setBinding() {

    }

    /**
     * 在设置布局之后，进行其他操作之前，所需要初始化的数据
     */
    override fun doBeforeInitOthers() {

    }

    /**
     * 初始化控件数据
     */
    override fun initViewData(savedInstanceState: Bundle?) {

    }

    /**
     * 初始化其他数据
     */
    override fun initOtherData() {

    }

    /**
     * 初始化事件
     */
    override fun initEvents() {
        binding.wifiSettingBtn.setOnClickListener(onClickListener)
        binding.airplaneModeSettingBtn.setOnClickListener(onClickListener)
        binding.displaySettingBtn.setOnClickListener(onClickListener)
        binding.voiceControlAirplaneModeSettingBtn.setOnClickListener(onClickListener)
        binding.systemSettingBtn.setOnClickListener(onClickListener)
    }

    /**
     * 在最后进行的操作
     */
    override fun doAfterAll() {

    }

}